1. Field of the Invention
This invention relates to locally programmed interactive graphics workstations in which a user selects a graphics primitive in the ,display image by means of positioning a "pick window" to create an area of the display screen active for picking.
2. Background Art
In graphics computing systems that provide the pick window function, the position of the pick window is usually visually indicated to a user by means of a tracking cursor. The workstation user 18 communicates pick window position to the display processor by means of an interactive device 20 such as a keyboard, mouse, cursor, or track ball. Such systems have a display processor ID which processes a graphics program stored in a memory sometimes referred to as a display list buffer 12 to generate a graphics image on the display screen 14 of the system (see FIG. 1). The graphics program stored in the display list buffer is produced by an application program 16 running in the system, or workstation, or on a remote host computer.
This type of workstation architecture is well known in the literature (see, for instance, Foley and Van Dam's text, Fundamentals of Interactive Computer Graphics, pages 19-20 and 200-203). The IBM 5080, described in IBM publication GA23-2012-0 ("IBM 5080 Graphics System: Principles of Operation, 5085 Model 2"), serves as one specific example of such a display list programmed workstation providing a picking function.
A common problem that must be solved in the user-interface of such a workstation is how to give the user the ability to identify which graphics primitive he or she wishes to select if more than one primitive intersects the pick window. The methods for solving this problem can be divided into two categories, those in which the "visual feedback" function is provided by the workstation independent of the application program, and those in which the application program uses the features of the workstation to perform the "visual feedback" function. Each of these categories will now be presented, along with a discussion of their advantages and disadvantages:
1. Application-provided visual feedback approaches:
One such approach available to applications for solving the problem posed by multiple pickable primitives in the pick window is for the application to give the user the ability to magnify the image when necessary. By magnifying the image, the pick window can be positioned in such a way that only the desired primitive intersects the pick window. Once the picking action has been performed on the magnified image, the user may then "demagnify" the image back to its original size. This approach, however, has the drawback that the user's productivity is reduced by the additional steps he or she must take to accomplish the magnification/demagnification processes.
An alternative to the "magnify-demagnify" approach is for the application to provide a selective highlight or display of primitives (or high-level structures) that pass through the pick window. In order to do this, the application must take special action when it detects that the primitive being drawn intersects the pick window. Currently available graphics systems, such as the IBM 5080, offer applications the choice of handling pick events at the remote host or the workstation's general purpose processor, or locally in the display list program itself. Each of these picking modes will now be described.
a. Remote pick processing-- PA0 b. Local pick processing--
In the case where picks are handled at the host or workstation processor, any time a pickable primitive is drawn in the pick window the display processor immediately interrupts the host or workstation processor with the data for the pickable primitive, and suspends operation until it receives a command back from the processor. Processing of the pickable primitive is then done at the remote host instead of by the display processor. The advantage of this picking mode that control is automatically given to the processing unit that handles the pick event whenever the display processor detects that a primitive was drawn in the pick window; no overhead is added to the display list program to determine which of the intersecting primitives is to be picked. Since such a test is needed after each primitive is drawn this is a significant feature. A disadvantage of this picking mode is that it incurs the performance penalties arising from communication between the display processor and the host or workstation processor when a pick intersection occurs, and it increases the likelihood that the state of the workstation may change between the time of the pick window intersection and the time that the host or workstation processor responds.
In the "local" picking mode, any time a pickable primitive is drawn in the pick window the workstation saves the pick data for that primitive in a local save area, and sets an indicator for the display program to know that a pick window intersection occurred. After this, execution continues at the next graphics instruction. The display program can add instructions after each primitive is drawn to test for the occurrence of a pick window intersection, and take appropriate action to perform some sort of visual feedback if a pick window intersection did occur. This picking mode has the advantage that it permits local (display processor) processing of pickable primitives, thus avoiding the performance penalties of communicating with a remote host or workstation processor. However, "local" picking mode of current graphic workstations has the disadvantage that additional graphics instructions must be inserted at many places in the display program, thus reducing the application's performance and increasing its program storage requirements.
Due to the disadvantages listed above for the remote and local picking modes, many graphics applications to date have offered the "magnify-pick-demagnify" technique instead of providing a true high-level visual feedback function. Unfortunately, the brunt of the selection process is then put on the user of the graphics application.
2. Workstation-provided visual feedback approaches:
In these approaches, the workstation itself keeps track of those primitives that intersect the pick window, and displays or highlights them one at a time in response to some signal (such as the depression of a keyboard button) issued by the user. This is an improvement over the application-provided visual feedback approach in that the user no longer needs to magnify/demagnify the image. However, this approach has the drawback that the set of display or highlight functions available to the application is limited to those that are implemented in the hardware of the workstation. These are usually limited to simpler building-block primitives (such as lines) instead of the aggregate graphic structures an application allows its users to select. Thus, an application is often unable to visually identify the complete structure containing the pickable entity, a drawback that creates ambiguity for the user of the application. With the workstation-provided visual feedback approach, the application is not given the ability to implement the visual feedback requirements of its own unique user-interface.